<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>留言板</title>
    <style>
        .container {
            width: 350px;
            height: 300px;
            margin: 0 auto;
            /* border: 1px black solid; */
            text-align: center;
        }

        .grey {
            color: grey;
        }

        .container .row {
            width: 350px;
            height: 40px;

            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .container .row input {
            width: 260px;
            height: 30px;
        }

        #submit {
            width: 350px;
            height: 40px;
            background-color: orange;
            color: white;
            border: none;
            margin: 10px;
            border-radius: 5px;
            font-size: 20px;
        }
    </style>
</head>

<body>
    <div class="container">
        <h1>留言板</h1>
        <p class="grey">输入后点击提交, 会将信息显示下方空白处</p>
        <div class="row">
            <span>谁:</span> <input type="text" name="" id="from">
        </div>
        <div class="row">
            <span>对谁:</span> <input type="text" name="" id="to">
        </div>
        <div class="row">
            <span>说什么:</span> <input type="text" name="" id="say">
        </div>
        <input type="button" value="提交" id="submit" onclick="submitMessage()">
        <!-- <div>A 对 B 说: hello</div> -->
    </div>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <script>
       //用于显示留言的记录
        $.ajax({
            url: "/message/getList",
            type: "GET",
            // 解释：如果请求成功，则执行success回调函数，参数data表示请求成功后返回的数据,也就是URL对应的后端代码的返回值
            success: function (data) {
                // data是一个留言对象，即List<MessageInfo>，有属性from, to, say
                // 遍历data，获取from, to, say，然后构造节点，添加到页面上
                var divE = "";
                for(var message of data){
                    
                    divE += "<div>" + message.from + "对" + message.to + "说:" + message.say + "</div>";
                    
                }
                //append()方法用于在被选元素的结尾插入指定内容。
                $(".container").append(divE);

            }
        })

        //用于提交留言的记录
        function submitMessage() {
            //1. 获取留言的内容
            var from = $('#from').val();
            var to = $('#to').val();
            var say = $('#say').val();
            if (from == '' || to == '' || say == '') {
                return;
            }
            // 2.发送ajax请求，将留言内容发送到后端
            $.ajax({
                url: "/message/publish",
                type: "POST",
                data: {
                    // ：左边的值来自后端中定义的对象中的属性名，右边的值来自前端定义的变量名
                    from: from,
                    to: to,
                    say: say
                },
                // 解释：如果请求成功，则执行success回调函数，参数data表示请求成功后返回的数据,也就是URL对应的后端代码的返回值
                // 返回的是Boolean类型，如果返回true，则表示发送成功，如果返回false，则表示发送失败
                success: function (data) {
                    if (data) {
                        //3. 构造节点
                        var divE = "<div>" + from + "对" + to + "说:" + say + "</div>";
                        //4. 把节点添加到页面上    
                        $(".container").append(divE);
                        //5. 清空输入框的值
                        $('#from').val("");
                        $('#to').val("");
                        $('#say').val("");
                    }else{
                        alert("发送失败");
                    }

                }
            })

        }

    </script>
</body>

</html>